/**
 * Created by 孤傲苍狼 on 2016/2/25.
 */
$(function(){
    var websocket = null;
    //判断当前浏览器是否支持WebSocket
    if ('WebSocket' in window  || 'MozWebSocket' in window) {
        websocket = new WebSocket("ws://10.1.1.127:8080/webSocketServer");
    }
    else {
        alert('当前浏览器 Not support websocket')
    }

    //连接发生错误的回调方法
    websocket.onerror = function (event) {
        alert(event.data);
    };

    //连接成功建立的回调方法
    websocket.onopen = function (event) {

    };

    //接收到消息的回调方法
    websocket.onmessage = function (event) {
        //解析接收到的消息，转成JSON对象
        var data = JSON.parse(event.data);
        window.location.hash = data.hash;
    };

    //连接关闭的回调方法
    websocket.onclose = function (event) {
        alert(webSocketClientId+"被WebSocket服务器端主动关闭连接了");
    };

    //监听窗口关闭事件，当窗口关闭时，主动去关闭websocket连接，防止连接还没断开就关闭窗口，server端会抛异常。
    window.onbeforeunload = function () {
        //关闭本页面的WebSocket链接
        closeCurrentWebSocket();
    };

    //关闭当前页面的WebSocket连接
    function closeCurrentWebSocket() {
        if(websocket != null){
           websocket.close();
            websocket=null;
        }else{
            alert("websocket还没有连接");
        }
    }


    /**
     * 监听描点改变事件
     */
    $(window).on('hashchange', function(){
        //获取页面的描点位置
        var hash = window.location.hash;
        var message = {};
        message.hash = hash;//将页面的描点位置发送到WebSocket服务器端,服务器端拿到锚点位置后再分发给所有的客户端
        //使用原生的JSON对象的stringify方法将stringWebsocketMessage转成JSON对象并使用WebSocket发送JSON对象
        websocket.send(JSON.stringify(message));//发送消息
    });
});